git rebase |
您所在的位置:网站首页 › rebase onto remote › git rebase |
git rebase --onto とは?
指定したコミットに、あるブランチの指定した範囲をつなげるコマンド
G - H - I(target-branch)
/
D - E - F
/
A - B - C (このコミットの後ろに GHI を繋げたい!)
のような形になっている時に、 git rebase --onto C F target-branch と実行すると、 D - E - F / A - B - C - G' - H' - I'(target-branch)のような形になるようにブランチを操作してくれるコマンド どんな場面で使えるの?(個人的な感想です) テストの経験が浅いが、単体テストを導入したい 自分の開発用ブランチに続けてテスト用のブランチを作成し、まずは自分の環境でだけテストできるようにした (自分でも手探りなところがあるため)共有されているリポジトリにはテスト用のコミットはpushできない 諸事情でdevelopブランチがmasterにmergeできなくなったときや、developブランチでの検証が終わったので、unit-testブランチをmasterブランチの後ろに持って行きたいというようなケースで便利に使えます。具体的すぎる気もしますが、似たようなケースはたくさんあるのではないかと思います。 2が完了した状態 G - H - I(unit-test) / D - E - F (develop) / A - B - C (master)このような形で、なんとなくunit-testブランチでのテストはうまく行ったけど、まだmasterにpushできるほどではない、という時に、「せっかく作ったunit-testブランチを、再利用可能な形で残しておきたい!」と大半の人が思うことかと思います。 そのようなときこそ、git rebase --onto の出番です! unit-testブランチをmasterブランチの後ろにもっていきましょう。 # unit-test ブランチで、 git rebase --onto master develop unit-test のコマンドを実行した状態 D - E - F (develop) / A - B - C - (master) - G' - H' - I'(unit-test)unit-testブランチが、masterブランチの後ろにくっつきました。やったー! 最初の例と同じ形になりました! (もし、引き続きdevelop2の開発が始まりまって、そこでもunit-testブランチの検証がしたいと思った時には、unit-testブランチ上で普通に、git rebase develop2 を実行すればOKです! なれてきたら、最初の git rebase --onto master develop unit-test実行時に、 git rebase --onto develop2 develop unit-test と実行しても大丈夫です!) まとめ git rebase --onto を使うとブランチを自由に移動させられる 新しい技術や手法の検証のために、git rebase --ontoを使うことができる ローカル環境で色々試しやすくなって幸せになれる ある程度検証が終わったら、masterにマージしてチーム全体が幸せになれる 注意点上記のような使い方で、git rebase --onto が必要なブランチを大量に作っていると、大量にコンフリクトが発生してrebase作業だけで半日たっていた!等、本末転倒なことが起こる可能性がありますのでご注意ください! |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |